#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include "mystat.h"

#define SIZE 128

int main(int argc, char **argv) 
{
    int ch;
    char path[SIZE] = {'\0'};
    int long_format = 0; // 用于标记是否启用长格式

    // 默认路径为当前目录
    strcpy(path, ".");

    // 解析命令行参数
    while ((ch = getopt(argc, argv, "l")) != -1) {
        switch (ch) {
            case 'l':
                long_format = 1; // 启用长格式
                break;
            case '?':
                printf("Unknown option: %c\n", optopt);
                return 1;
            default:
                break;
        }
    }

    /*
     * 默认情况下，getopt 会在遇到非选项参数（如 /etc）时停止解析，并将非选项参数留在 argv 中。
     * 但如果 optstring 以 "-" 开头，getopt 会将非选项参数视为选项参数的一部分，并返回 1。
     * 返回值：对于非选项参数，getopt 返回 1，并将非选项参数存储在 optarg 中。
     */
    // 处理非选项参数（例如路径）
    if (optind < argc) {
        strncpy(path, argv[optind], SIZE - 1);
        path[SIZE - 1] = '\0'; // 确保字符串以 null 结尾
    }

    // 调用 mystat 函数
    mystat(path);

    return 0;
}
